MPARTICLE C ===== H chstwahrscheinlich hat Euch der 3. Teil nun eine =====> ==== Ausgabe sp ter erreicht als geplant. ====< ==== Ich bitte dies zu entschuldigen. ==== 2 **** Stephan Kraus **** 9 # # # # # # # # # # # # # # # # # # # # #< -# JETZT MIT 50% MEHR INHALT ! #-9 # # # # # # # # # # # # # # # # # # # # # - _________________________________I [*]--| Cracking the Shell - Part three |---------------------[#][#]I |----| Kursfahrplan |__________________| |I | `--------------' |--------------------------|I | ----- |I | 1.) - Einf hrung |-> 3.) - Menusystem <- |I | - die wichtigsten Befehle |-> - Skriptdateien Nr.2<- |I | | |I | 2.) - Skriptdateien | 4.) - mehr Skripte |I | - eigene Bootdisk | - Dateien und Skripte |I | | |I | | 5.) - Entr mpeln der WB |I |__________________________________|______________________________|I |In Vorbereitung: | Fehlercodes * Escape & ANSI Sequences * |I |------------------_________________ ^ |I | ---------------- ___________v_|I | COME TO *WORLD OF COMMODORE* WITH AMIGA 1994 | (C) by S.K. |I *---------------------------------------------------------------[/] % ______________________________ |6 * Vorraussetzungen: AMIGA MIT OS2.0 ODER H HER.B ^^^^^^^^^^^^^^^^^ H CHSTWAHRSCHEINLICH FUNKTIONIEREN ALLE@ BEISPIELE AUCH AUF 1.3, ICH KONNTE ESB ABER NICHT AUSPROBIEREN (KEIN 1.3 AMIGAI VORHANDEN *I |I ---------------------------------- I Die in diesem Workshop beschriebenen Verfahren und AnleitungenI sowie die gegebenen Informationen sind allein zu LehrzweckenI erstellt. Ich kann keine Haftung f r fehlerhafte Angaben oderI daraus resultierende Folgen bernehmen. Alle Beispiele sind auf 2.0I gepr ft. Wenn sich dennoch Fehler eingeschlossen haben, (wetten9 das)bitte benachrichtigen ! Trotz allem viel Spa !C Die fehlerfreien Versions gibts kostenlos bei mir +(LD+Porto) , * ** + Murphy strikes BACK !!! -+-+-+-+-+-+-+-+-+-+-+- Im 1. Teil mu te es hei J """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""/ -=Skriptdateien=-J """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""I Die im letzten Kursteil besprochene "Skriptdatei" war noch etwas ma-H ger: sie war nicht interaktiv (um mal ein Modewort zu gebrauchen!);4 d. h. sie reagierte nicht auf Benutzereingaben. E In diesem Kursteil werden wir uns in erster Linie einem Tastaur-D gesteuertem Menusystem f r eine Programmdiskette widmen. Nehmen0 wir an, auf unsere Disk sollen 5 Programme: 9 -> 1.) Texteditor (Nehmen wir den guten, alten "ED")> -> 2.) beliebiges DFUE-Programm (m glichst kleines) [1]> -> 3.) ein Taschenrechner (Calc 3.0) [2]> -> 4.) Pac-Man Spiel (Minipac) [3] -> 5.) Die Shell. , [ Programme siehe Quellenverzeichnis ]. 4 Dann soll unser Startmenu ungef hr so aussehen: - 1.) Der Bildschirm soll gel scht werden.% 2.) Ein Musikst ck wird geladen.# 3.) ein Text wird ausgegeben : & ----> Hallo, Meister <---- - - - - - - - - - - -, Welchen Dienst darf ich Euch erweisen ? & * * * * * * * * * * * * * * * * *& * >1< Rechnen, Plotten. *& * >2< Pacman spielen. *& * >3< Hacken. *& * >4< Texte erfassen. *& * >5< Shell-Fenster ffnen. *& * * * * * * * * * * * * * * * * *& * >6< - ENDE - *& * * * * * * * * * * * * * * * * * Ihre Eingabe (Kennziffer) -> # J """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 1.1 VorbereitungJ """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""E Zus tzlich zu den geplanten "Nutzprogrammen" m ssen wir uns nochD ein beliebiges Musikabspielprogramm [z.B. 5] und ein MusikmodulG (eine Datei, in der die ben tigten digi-Instrumente sammt den "No-H ten" gepeichert ist. Diese findet man h ufig auf PD-Disketten. Lei-J der gibt es bei Musikmodulen keinen "Standart" wie .IFF bei Grafiken.G Daher mu r gesorgt werden, da der Player zum Modul kompatibel4 ist. Gebr uchlich ist das "Protracker-Format"). F Ansonsten m ssen wir uns berlegen, wie wir den Bilschirm l schen6 . Erstes k nnen wir mit einer beliebigen CompilerH sprache, mit Ausnahme villeicht Amos realisieren. Einfacher geht esG jedoch ber sogenannte "Escape-Sequencen", welche Haupts chlich inJ Verbindung mit Druckern bekannt sind. Neugierige haben bestimmt schonE mal einen Blick in die Datei "Shell-Startup" der WB2.0 geworfen. Dort hei t es: . alias xcopy "copy clone " alias emacs memacs C alias clear "echo *"*E[0;0H*E[J*" " <- Das interessiert uns ! 8 alias reverse "echo *"*E[>1m*E[30;41m*E[0;0H*E[J*""7 alias normal "echo *"*E[>0m*E[31;40m*E[0;0H*E[J*"" Prompt "%N.%S> " . I f gen wir nun die markierte Zeile an den Anfang unseres Menu-Skripts4 ein, k nnen wir sie immer mit "clear" aufrufen!' Drucken k nnen wir eine Datei mit: Zu druckende Datei ___ / \ -> copy from datei to prt: \__/ \/ \__/- |__________| |__> Der Drucker optional. K """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 1.2 Die DisketteK """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""H Zuerst mu eine Diskette formatiert werden. (format drive dfx: name Diskette noicons)H Dann richten wir ein Verzeichnis "Programme" (mit makedir Diskette:D Prgramme) ein, und kopieren die o.g. Tool in diese "Schublade".C Da wir nicht wissen, welche Libraries, Devices und Handler vonI den einzelnen Programmen (auch wenn andere Programme verwendet werd-D en sollen.) ben tigt werden, kopieren wir einfach die gesammten Verzeichnisse: & copy Workbench2.0:l to Diskette:l, copy Workbench2.0:libs to Diskette:Libs, copy Workbench2.0:devs to Diskette:devs E Wir m ssen auch sicherstellen, da unser Druckertreiber im Verz.! Diskette:devs/printers/ ist. D F r den Men -Text und die Skripte ben tigen wir noch unser "s"-# Directory: makedir Diskette:s. - Wichtige Befehle m ssen ins C-Directory. makedir Diskette:c@ copy Workbench2.0:c/copy type loadwb execute to diskette:c/ f r die Shell:2 copy Workbench 2.0c/dir delete to diskette:c/ 2 F r das Musik-Modul: makedir diskette:modules/ copy musikdisk:mod.xy to diskette:modules/ copy player to diskette:c/ H Auf die deutsche Tastaturbelegung wollen wir auch nicht verzichten:D Kopieren Sie das keyfile "d" aus Extras2.0:devs/keymaps/ in die+ devs/keymaps - Schublade unserer Disk. G Ansonsten ben tigen wir noch das Setmap-Tool, um die Tastaturtrei-< ber zu aktivieren: Wir finden es in Worbench2.0:system/ C Erstellen wir nun mit "ED" oder einem anderen ASCII-Editor die: oben angegebene Men -Seite unter Diskette:s/menu-text Jetzt wirds interessant: J """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""; 2.0 Das Herzst ck: MENU-Startup und Startup-sequenceJ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" * lassen wir den Editor gleich "offen". 2.1 Startup-sequence ==================== ; start skript > ; mit dem Strichpunkt leiten wir Kommentare ein, wie z.B. ;* ; * * * * * * * * * * * * * * * * * ** ; * Startup-Sequence der Menu-Disk ** ; * Version 0.001 ** ; * * * * * * * * * * * * * * * * * * ; 8 echo " " ; eine Leerzeile7 echo "Programm Disk # 122 - Box 12 - Schublade 34"H echo "(C) 2001 by Infokomm" ; "echo" ab OS2.0 im ROM, Italia 6 run player modules/mod.xy ; Letz fetz ! ; ^ ^1 ; | |-> Name des Musikmoduls' ; |-> Name des Abspielprogramms execute s:menu-startup loadwb -debug ; ^* ; |-> 2 Neue Workbench - MenusA ; 1.) Flushlibs -> entfernt unn tige Bibliotheken4 ; aus dem Speicher.A ; 2.) RomWack -> Debugger (funktioniert nur beiE ; 2. Computer an Serial1. N heres bei Tip&Tricks) ; end skript 4 -> Speichert unter diskette:s/startup-sequence. L """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""/ 2.0 Neue Befehle zur SkriptverarbeitungL """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" F skip xyz : Springe Zu ( hnlich Goto in Basic), erwartet Sprung- marke.> Durch einen Trick (skip >NIL: ?) kann dieser= Befehl auch in S.-Dateien verwendet werden. J lab xyz : Sprungmarke. Nach "skip" kommt der Name der Sprungmarke.D Beispiel: nach "Skip x" wird zu "lab x" verzweigt. . ask "text" : (Y/N)-Auswahl. (siehe unten) 2.2 Menu-Startup ================ ; start skript ; * * * * * * * * * * * * ; * Menu-Startup V.001 * ; * * * * * * * * * * * * D failat 99 ; Wenn Fehler -> kein Abbruch der SkriptdateiI alias clear "echo *"*E[0;0H*E[J*" " ; Escap-Sequenz zum Bilschirm-6 ; l schen !? lab loop ; Wenn Fehler -> Hierhin springen !( clear ; siehe oben. type s:menu-text ; Angebot ausgeben8 skip >NIL: ? ; wir tricksen! siehe unten! > lab 1 ;Rechner ; Wenn "1" eingegeben -> ausf clear echo "Ich lade Calc 3.0!"! diskette:programme/calc3.07 skip end ; zur "ende"-Marke springen > lab 2 ; Wenn "2" eingegeben -> ausf clear' echo "Die Spiele m gen beginnen"! diskette:programme/minipac skip end lab 3 clearB echo "Welcome to the NASA-Headquarters. Keep on hacking !"" diskette:programme/miniterm skip end @ lab 4 ; geht nat rlich auch mit Buchstaben clear1 echo "Lade Ascii-Editor, file in RAM:TEXT" diskette:c/ed ram:TEXT skip end lab 5' echo " " ; Leerzeile; echo " ffne neue Shell, bitte etwas Geduld........"A run newshell ; Hach bin ich froh, keine MS-Dose zu% ; haben !D skip loop back ; Jetzt kann er ja zum Anfang springen ! lab 6 clear: echo " ------> E N D E G E W H L T <------ "@ ask " Skript beenden & WB laden ? (Y = Ja / N = Nein) ". If WARN ; Y=Ja gew hlt.8 quit ; Schlu mit Menu-startup< ; -> gehe zu Startup-Sequence1 ELSE ; andererseits.... skip loop back 9 lab ; kein Buchstabe eingegeben ! clear9 skip loop back ; zur ck zum Start (lab loop)C skip end ; Diese Zeile kann nie erreicht werden,0 ; Daher berfl ssig. F lab end ; hier ist Schlu ! (Aufgerufen, wenn Pro-E ; gramm erfolgreich gestartet und Beendet$ ; wurde. / skip loop back ; zur ck zum Start. ; end skript L**************************************************************************** F Die Programme sind den Serien Fish (Minipac),(CALC3.0) und Aminet5 (Miniterm, 17 kbyte) entnommen. Alle PRG's bei :J Stephan Kraus, In den Forstwiesen 7, 56745 Bell. Gegen 3 DM in Brief-= marken. (Einschlie lich Porto und Leerdisk und Umschlag) F So, ich hoffe bei euch hat alles funktioniert. Bis n chsten Monat in ........ 6 + + + + + + + + + + + + + + + + + + +> -----> + Nocover - DAS Amiga Disk-Magazin + <-----6 + + + + + + + + + + + + + + + + + + + A (C) 10/94 by Stephan Kraus Printed on Alpha Centauri ' \|/( --*--' /|\ -WORK-Cracking the Shell Teil 3 Seite 1 von 17 -WORK-Cracking the Shell Teil 3 Seite 2 von 17 -WORK-Cracking the Shell Teil 3 Seite 3 von 17 -WORK-Cracking the Shell Teil 3 Seite 4 von 17 -WORK-Cracking the Shell Teil 3 Seite 5 von 17 -WORK-Cracking the Shell Teil 3 Seite 6 von 17 -WORK-Cracking the Shell Teil 3 Seite 7 von 17 -WORK-Cracking the Shell Teil 3 Seite 8 von 17 -WORK-Cracking the Shell Teil 3 Seite 9 von 17 .WORK-Cracking the Shell Teil 3 Seite 10 von 17 .WORK-Cracking the Shell Teil 3 Seite 11 von 17 .WORK-Cracking the Shell Teil 3 Seite 12 von 17 .WORK-Cracking the Shell Teil 3 Seite 13 von 17 .WORK-Cracking the Shell Teil 3 Seite 14 von 17 .WORK-Cracking the Shell Teil 3 Seite 15 von 17 .WORK-Cracking the Shell Teil 3 Seite 16 von 17 .WORK-Cracking the Shell Teil 3 Seite 17 von 17